The present invention relates-to caching, and more specifically, to caching dynamic content.
The competition among web applications on the Internet is continuing to increase. To provide economic value, web applications must offer content that is current, compelling, targeted to user interests and needs, and rich in information. Accordingly, web sites are providing dynamic content to meet such demands. However, as web sites transition from static to dynamic content, the business tension between the need for improved website performance and sky-rocketing costs of web operations continues to mount. In particular, many web sites face the challenge of expanding to include more personalized, dynamic content, improving performance, while simultaneously reducing the costs of web operations. The explosion of dynamic content, personalization and more sophisticated content management applications is significantly increasing the value of each web site browsing experience. However, such features for a web site are also bogging down backend systems, thereby creating performance, scaling, and cost headaches.
A current approach to such problems includes a never-ending build-out of additional servers and software. In addition to the new capital equipment, such an approach typically requires hiring of extra staff to manage the new web infrastructure.
Another typical approach to such problems includes conventional caches that store and retrieve copies of static objects, such as bitmaps and pictures. However, because web sites are gravitating to more dynamic content, conventional caches are not able to cache most web pages. Furthermore, many web pages include content such as personalized information, and transient data, which cannot be cached by conventional systems. Therefore, the conventional caches used cannot be used for much of the content.
A method and apparatus for dynamic caching is described. A method and apparatus for providing a dynamic caching system is described. The apparatus for dynamic caching comprises a UCI creator to create a unique content identifier for a request for a requested data set, proxy receiving logic to receive the requested data set from the origin server, and a compilation engine to create a compile object from the requested data set. The apparatus further comprises an assembly engine to, on a subsequent request for the data set, interpret the compile object to create the requested data set. The apparatus further comprises response logic to serve the requested data set to a requester, without impacting the origin server.